/*
 * Copyright © 2024-2025 Wenze Wei
 *
 * This file is part of StadionOS.
 *
 * This Source Code Form is subject to the terms of the GNU General Public License, v. 2.0.
 * You can obtain a copy of the GPL at
 * https://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 */

#include "test.h"  

int main() {
    Sprint("\nTesting Standard LPI...\n");
    test_lpi();
    Sprint("Standard LPI Test Completed.\n\n");

    Sprint("\nTesting Standard I/O...\n");
    test_stdio();
    Sprint("Standard I/O Test Completed.\n\n");  

    Sprint("Testing Smemchr...\n");  
    test_Smemchr();
    Sprint("Smemchr Test Completed.\n\n");  

    Sprint("Testing Smemcmp...\n");  
    test_Smemcmp();
    Sprint("Smemcmp Test Completed.\n\n");  

    Sprint("Testing Smemcpy...\n");  
    test_Smemcpy();
    Sprint("Smemcpy Test Completed.\n\n");  

    Sprint("Testing Sstrcat...\n");  
    test_Sstrcat();
    Sprint("Sstrcat Test Completed.\n\n");  

    Sprint("Testing Sstrchr...\n");  
    test_Sstrchr();
    Sprint("Sstrchr Test Completed.\n\n");  

    Sprint("Testing Sstrcmp...\n");  
    test_Sstrcmp();
    Sprint("Sstrcmp Test Completed.\n\n");  

    Sprint("Testing Sstrlen...\n");  
    test_Sstrlen();
    Sprint("Sstrlen Test Completed.\n\n");  

    Sprint("Testing Sctype...\n");  
    test_Sctype();
    Sprint("Sctype Test Completed.\n\n");  

    Sprint("Testing Time...\n");  
    test_time();
    Sprint("Time Test Completed.\n\n");  

    Sprint("Testing Math...\n");  
    test_math();
    Sprint("Math Test Completed.\n\n");

    Sprint("Testing Process...\n");
    test_process();
    Sprint("Process Test Completed.\n\n");

    Sprint("Testing Filesystem...\n");  
    test_fs();
    Sprint("Filesystem Test Completed.\n\n");  

    Sinit_memory_pool(1024 * 1024);

    Sprint("Testing Memory Management...\n");
    test_memory_management();
    Sprint("Memory Management Test Completed.\n\n");

    Scleanup_memory_pool();

    Sprint("Testing Memory Management Again...\n");
    test_memory_management();
    Sprint("Memory Management Test Completed.\n\n");
    
    Sprint("Testing Errorr...\n");
    test_errorr();
    Sprint("Errorr Test Completed.\n\n");

    Sprint("Done.\n");

    return 0;  
}
